This invention is related in general to robotic devices and in particular to a robot motion control system.
Robots have been used in manufacturing for a number of years. One of the most common uses for robots in the manufacturing context is to perform repetitive motions such as moving objects from one place to another in the assembly process. This type of application is referred to as "pick and place". Over the past two decades, a progression of robot motion control languages have been developed to allow for simpler and more capable programming. These robot motion control languages can be classified into three categories (M. C. Leu, Cornell University, "Robotics Software Systems", Robotics & Computer-Integrated Manufacturing, Vol. 2, No. 1, pp. 1-12, 1985). They are Joint Level, Manipulator Level, and Task Level. Examples of each follow:
______________________________________ Joint Level Manipulator Level Task Level ______________________________________ ML (IBM) WAVE (Stanford) AL (Stanford) ARMBASIC (Microbot) AL (Stanford) Autopass (IBM) EasyLab (Zymark)
(Purdue) LAMA (MIT) VAL (Unimation) RAPT (Edinburgh U.) AML (IBM) RAIL (Automatix) MCL (McDonnell) RCL (SRI) AR-BASIC (American Robot) ______________________________________
Robot teaching methods can also be classified into two categories. These are, as Leu says, textual and non-textual. Most robot control languages allow for both teaching techniques. In no-textual teaching, the robot motions are taught by the user with the aid of a teach pendant. This device is a hand-held unit consisting of buttons, switches, and other control means as well as feedback means from the robot controller. The user is able to control and robot's motion and store robot positions using this device. In textural teaching, all robot motions are defined explicitly using position information gathered from an object location and geometry data base or from a calculation process.
The primary advantage of non-textual teaching is its simplicity and reliability. The user simply shows the robot where to go and how to get there. Collisions are essentially impossible. The main disadvantage with this teaching technique with current programming languages is the difficulty in editing and documenting the program. The primary advantage of textual teaching is in its ability to edit and document robot control programs. However, textual teaching techniques alone suffer from a difficulty in defining locations of the objects in the workcell. Most languages combine textual and non-textual teaching techniques to minimize programming effort. Nonetheless, existing languages are often cumbersome because of the lack of a simple mechanism for grouping together sequences of positions to form entire motions.
Joint level languages are quite limited in capability because of their lack of knowledge of actual positions in the workcell. The only thing they known is the position of the joints (axes) of the robot. It is both difficult and dangerous to modify a motion in this type of language.
Manipulator Level languages allows the user to program a task in terms of a sequence of robot motions represented by the end-effector locations. Since the language deals directly with actual positions and orientations of the end of the arm, it is readily possible to modify the execution of particular sequences of positions with the use of modifiers. Most commercial languages are of this type.
Task level languages are the highest, and most capable of all robot control languages because the user programs the task in terms of states of the world, not robot motions. The robot system determines how the robot is to move to accomplish a desired task. The main disadvantage with this type of language is that it requires an accurate model of the world. This model must be generated from a data base since direct input from the user via the keyboard is impractical for such a large volume of data. For most applications, especially those found in the laboratory, a data base describing the geometry of all objects in the robot's workcell is not available. For this reason, task level languages are not practical in the laboratory.
As listed in the table above for the three level of languages, examples of manipulator level languages are (1) and AL system as described in "AL Users' Manual" by Shahid Mujtaba ad Ron Goldman, Stanford Artificial Intelligence Laboratory, Memo AIM-323, Computer Science Department Report No. STAN-CS-79-718, January, 1979, (2) AR-BASIC(R) by American Robot Corporation of Pittsburgh, Pa. and (3) VAL-II System by Unimation Inc. of Danbury, Conn. In these systems, the approach taken is to dissect a robot motion into a sequence of points. To further define the robot motion, attributes such as the speed of the motion between points is specified on a point by point basis. In other words, if the robot is to move from one point to the next point of the motion, the speed of the motion is specified for the interval between such points. This can become tedious for the user especially if long sequences of positions are being modified by the same modifiers, which is often the case.
None of the above-described system are entirely satisfactory. It is therefore desirable to provide a robot motion control system in which many of the above-described difficulties are alleviated.